Spectrometer Synchronised Trigger

Author

Yiwei Mao

Published

November 28, 2023

Code
from specs import *
Code
oo = OceanSpectro(nlines=1024,serial_num="QEP00994",trigger=True)

oo.get_spectra()
oo.show()
Code
oo.collect()
100%|███████████████████████████████████████| 1024/1024 [02:08<00:00,  8.00it/s]
Code
oo.waterfall(wavelen_range=(670,780)).opts(ylabel="seconds ago",xlabel="wavelength (nm)")
Code
oo.waterfall().opts(ylabel="seconds ago",xlabel="wavelength (nm)")
Code
# from spectrometers.ipynb

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

import xarray as xr
import holoviews as hv
hv.extension("bokeh", logo=False)
import matplotlib.pyplot as plt

from datetime import datetime, timezone
from scipy.interpolate import interp1d

from fastcore.foundation import patch
from fastcore.dispatch import typedispatch # only types of first two arguments used
from tqdm import tqdm

from holoviews import opts
from holoviews.streams import Pipe, Buffer

from typing import Iterable, Union, Callable, List, TypeVar, Generic, Tuple, Optional
Code
oo.wavelengths[idx-14], oo.wavelengths[idx+14]
(684.9762564320639, 695.2310886390743)
Code
idx = np.sum(oo.wavelengths<690)
curve = temp_blue[:,idx-14:idx+14].mean(axis=1)
for i,j in zip(curve>200,range(len(curve))):
    if i:
        curve[j] = (curve[j-2]+curve[j+2])/2
for i,j in zip(curve>150,range(len(curve))):
    if i:
        curve[j] = (curve[j-3]+curve[j+3])/2
ga
hv.Curve( zip(np.arange(len(curve))*(oo.exposure+32)/1000,curve) ).opts(
    width=800,xlabel="seconds (s)",ylabel="counts",ylim=(0,170),title="wavelength 685-695 nm, Blue LED")
Code
temp_blue = oo.get_AC_diff()
hv.Image( temp_blue[:,500:] )
Code
Fo_green = temp_blue.sum(axis=0)
hv.Curve( zip(oo.wavelengths,Fo_green) ).opts(width=800,ylim=(0,0.1*np.max(Fo_green)),xlim=(670,780))
Code
idx = np.sum(oo.wavelengths<680)

hv.Curve( zip(np.arange(temp_green.shape[0])*(oo.exposure+32)/1000,temp_green[:,idx]) ).opts(
    width=800,xlabel="seconds (s)",ylabel="counts",ylim=(0,2000))
Code
oo.save(savedir="../data/qepro/",suffix="_f0blue")